package com.keba.lamp.complaint.vo.save;

import com.keba.basic.base.entity.SuperEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 表单保存方法VO
 * 文书模版
 * </p>
 *
 * @author twg
 * @date 2025-07-09 15:45:42
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@EqualsAndHashCode
@Builder
@Schema(description = "文书模版")
public class DocTemplateSaveVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
    private Long id;

    /**
     * 唯一标识字符串
     */
    @Schema(description = "唯一标识字符串")
    @Size(max = 100, message = "唯一标识字符串长度不能超过{max}")
    private String code;
    /**
     * 模版名称
     */
    @Schema(description = "模版名称")
    @NotEmpty(message = "请填写模版名称")
    @Size(max = 255, message = "模版名称长度不能超过{max}")
    private String name;
    /**
     * 文书类型 [01立案文书、02律师函]@Echo(api = EchoApi.DICTIONARY_ITEM_FEIGN_CLASS, dictType = EchoDictType.System.DOC_TYPE)
     */
    @Schema(description = "文书类型 [01立案文书、02律师函]@Echo(api = EchoApi.DICTIONARY_ITEM_FEIGN_CLASS, dictType = EchoDictType.System.DOC_TYPE)")
    @NotEmpty(message = "请填写文书类型")
    private String docType;
    /**
     * 文书模版类型 [01送达地址、02银行结算确认书]@Echo(api = EchoApi.DICTIONARY_ITEM_FEIGN_CLASS, dictType = EchoDictType.System.DOC_TEMPLATE_TYPE)
     */
    @Schema(description = "文书模版类型 [01送达地址、02银行结算确认书]@Echo(api = EchoApi.DICTIONARY_ITEM_FEIGN_CLASS, dictType = EchoDictType.System.DOC_TEMPLATE_TYPE)")
    private String docTemplateType;
    /**
     * 【多选】适用当事人0-原告，1-被告
     */
    @Schema(description = "【多选】适用当事人0-原告，1-被告")
    private String applyParty;
    /**
     * 当事人类型（0-自然人，1-企业法人）
     */
    @Schema(description = "当事人类型（0-自然人，1-企业法人）")
    @NotNull(message = "请填写当事人类型")
    private Integer partyType;
    /**
     * 关联的文档模板id
     */
    @Schema(description = "关联的文档模板id")
    @Size(max = 255, message = "关联的文档模板id长度不能超过{max}")
    private String parentDocTemplateId;

    @Valid
    @Schema(description = "区域")
    @NotEmpty(message = "请填写地区")
    private List<AreaVO> areas;


}
